package org.bigdata.framework.core.protocol;

import java.util.HashMap;
import java.util.List;

import org.bigdata.framework.core.model.GeneralWord;
import org.bigdata.framework.core.model.GeneralWordCategory;
import org.bigdata.framework.core.model.ThesauriWord;
import org.bigdata.framework.core.model.ThesauriWordCategory;
import org.bigdata.framework.core.model.ThesauriWordModule;
import org.bigdata.framework.core.model.ThesauriWordReference;
import org.bigdata.framework.core.model.ThesauriWordRelation;

/**
 * 词表接口
 * @author vimes
 *
 */
public interface IWordService {

	/* 普通词表管理 start */
	
	/* 分类管理 start */
	GeneralWordCategory saveGeneralWordCategory(GeneralWordCategory generalWordCategory);
	GeneralWordCategory editGeneralWordCategory(GeneralWordCategory generalWordCategory);
	void deleteGeneralWordCategory(GeneralWordCategory generalWordCategory);
	/* 分类管理 start */
	
	/* 词表管理 start */
	GeneralWord saveGeneralWord(GeneralWord generalWord);
	GeneralWord editGeneralWord(GeneralWord generalWord);
	void deleteGeneralWord(GeneralWord generalWord);
	/* 词表管理 start */
	
	/* 普通词表管理 end */
	
	/* 叙词表管理 start */
	
	/* 范畴管理 start */
	ThesauriWordCategory saveThesauriWordCategory(ThesauriWordCategory thesauriWordCategory);
	ThesauriWordCategory editThesauriWordCategory(ThesauriWordCategory thesauriWordCategory);
	void deleteThesauriWordCategory(ThesauriWordCategory thesauriWordCategory);
	/* 范畴管理 start */
	
	/* 叙词表管理 start */
	ThesauriWord saveThesauriWord(ThesauriWord thesauriWord);
	ThesauriWord editThesauriWord(ThesauriWord thesauriWord);
	void deleteThesauriWord(ThesauriWord thesauriWord);
	/* 叙词表管理 start */
	
	/* 叙词表参照项管理 start */
	ThesauriWordReference saveThesauriWordReference(ThesauriWordReference thesauriWordReference);
	ThesauriWordReference editThesauriWordReference(ThesauriWordReference thesauriWordReference);
	void deleteThesauriWordReference(ThesauriWordReference thesauriWordReference);
	/* 叙词表参照项管理 start */
	
	/* 叙词表分库 start */
	ThesauriWordModule saveThesauriWordModule(ThesauriWordModule thesauriWordModule);
	ThesauriWordModule editThesauriWordModule(ThesauriWordModule thesauriWordModule);
	void deleteThesauriWordModule(ThesauriWordModule thesauriWordModule);
	/* 叙词表分库 start */
	
	/* 叙词表动态字段 start */
	ThesauriWordRelation saveThesauriWordRelation(ThesauriWordRelation thesauriWordRelation);
	ThesauriWordRelation editThesauriWordRelation(ThesauriWordRelation thesauriWordRelation);
	void deleteThesauriWordRelation(ThesauriWordRelation thesauriWordRelation);
	/* 叙词表动态字段 start */
	
	/* 叙词表管理 end */
	
	/* 普通词表查询管理 start */
	
	/* 分类管理 start */
	GeneralWordCategory findGeneralWordCategory(Integer id);
	List<GeneralWordCategory> getGeneralWordCategory();
	List<GeneralWordCategory> getGeneralWordCategory(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getGeneralWordCategoryCount(HashMap<String, Object> queryParams);
	/* 分类管理 end */
	
	/* 词表管理 start */
	GeneralWord findGeneralWord(Integer id);
	GeneralWord getGeneralWordByName(HashMap<String, Object> queryParams);
	List<GeneralWord> getGeneralWord(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getGeneralWordCount(HashMap<String, Object> queryParams);
	/* 词表管理 end */
	
	/* 普通词表查询管理 end */
	
	/* 叙词表查询管理 start */
	
	/* 范畴管理 start */
	List<ThesauriWordCategory> getThesauriWordCategory();
	ThesauriWordCategory findThesauriWordCategory(Integer id);
	List<ThesauriWordCategory> getThesauriWordCategory(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getThesauriWordCategoryCount(HashMap<String, Object> queryParams);
	/* 范畴管理 end */
	
	/* 词表管理 start */
	List<ThesauriWord> getThesauriWord();
	ThesauriWord findThesauriWord(Integer id);
	ThesauriWord getThesauriWordByName(HashMap<String, Object> queryParams);
	List<ThesauriWord> getThesauriWord(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getThesauriWordCount(HashMap<String, Object> queryParams);
	/* 词表管理 end */
	
	/* 词关系管理 start */
	List<ThesauriWordReference> getThesauriWordReference();
	ThesauriWordReference findThesauriWordReference(Integer id);
	List<ThesauriWordReference> getThesauriWordReference(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getThesauriWordReferenceCount(HashMap<String, Object> queryParams);
	/* 词关系管理 end */
	
	/* 叙词表分库 start */
	List<ThesauriWordModule> getThesauriWordModule();
	ThesauriWordModule findThesauriWordModule(Integer id);
	List<ThesauriWordModule> getThesauriWordModule(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getThesauriWordModuleCount(HashMap<String, Object> queryParams);
	/* 叙词表分库 end */
	
	/* 叙词表动态字段 start */
	List<ThesauriWordRelation> getThesauriWordRelation();
	ThesauriWordRelation findThesauriWordRelation(Integer id);
	List<ThesauriWordRelation> getThesauriWordRelation(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getThesauriWordRelationCount(HashMap<String, Object> queryParams);
	/* 叙词表动态字段 end */
	
	/* 叙词表查询管理 end */
	
}
